package com.dragon.logical.service.supplies;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dragon.repository.entity.AddPageData;
import com.dragon.repository.entity.DoReminder;
import com.dragon.repository.entity.Procurement;

/**
 * <p>
 * 采购单 服务类
 * </p>
 *
 * @author sy
 * @since 2023-10-23
 */
public interface IProcurementService extends IService<Procurement> {

    /**
     * 采购单 分页列表
     * @param page
     * @param limit
     * @param id 详情id
     * @param search 搜索参数
     * @param state 审核状态
     * @return
     */
    Page<Procurement> listProcurement(Integer page, Integer limit, Integer id, String search, Integer state, Integer procuredState);

    /**
     * 添加
     * @param procurement
     * @return
     */
    AddPageData addProcurement(Procurement procurement);

    /**
     * 修改
     * @param procurement
     */
    void updateProcurement(Procurement procurement);

    /**
     * 删除采购单
     * @param id id
     */
    void deleteById(Integer id);

    /**
     * 审核操作
     * @param doReminder
     */
    void auditProcurement(DoReminder doReminder);

    /**
     * 收货操作
     * @param procurement 采购单对象
     */
    void receiptProduct(Procurement procurement);

    /**
     * 添加退货
     * @param procurement
     */
    AddPageData addCancel(Procurement procurement);

    /**
     * 取消退货
     * @param id
     */
    void cancel(Integer id);

    /**
     * 反审核
     * @param correlationId
     */
    void antiAudit(Integer correlationId);

    Procurement detailById(Integer id);
}
